import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //共有n个数，从其中最多选择k个连续的数进行异或
        int n = in.nextInt();
        int k = in.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        int max = 0;
        //暴力解法
        //从第一个数开始，依次往后的k个数进行异或，并记录最大值，然后再从第二个数开始重复操作
        //注意边界条件，如果到最后一个数组元素的距离不足k，则只能取到边界
        for (int i = 0; i < n; i++) {
            int sum = 0;
            for (int j = i; j < Math.min(i + k, n); j++) {
                sum = sum ^ a[j];
                max = Math.max(sum, max);
            }
        }
        System.out.println(max);
    }
}
